package 观察者模式;

import java.util.ArrayList;
import java.util.List;

// 在这个示例中，ConcreteSubject 充当主题（被观察者），ConcreteObserver 充当观察者。
// 主题维护一个观察者列表，并在状态变化时通知所有观察者。
// 当主题的状态发生变化时，所有观察者都会被通知并更新自己的状态。
public class ObserverPatternExample {
    public static void main(String[] args) {
        ConcreteSubject subject = new ConcreteSubject();
 
        Observer observer1 = new ConcreteObserver("观察者1");
        Observer observer2 = new ConcreteObserver("观察者2");
 
        subject.addObserver(observer1);
        subject.addObserver(observer2);
 
        subject.setState(10);
        subject.setState(20);
 
        subject.removeObserver(observer1);
 
        subject.setState(30);
    }
}
